public class Solution1a {
//解决solution1里面超时的问题；使用逐字检查的方法
        public String longestCommonPrefix(String[] strs) {
            if (strs == null || strs.length == 0) {
                return "";
            }

            // 假设第一个字符串是最长公共前缀
            String prefix = strs[0];

            // 从第二个字符串开始，逐个与前缀比较
            for (int i = 1; i < strs.length; i++) {
                // 逐字符比较，更新公共前缀
                int j = 0;
                // 比较当前prefix和strs[i]的字符，直到找到不同的位置
                while (j < prefix.length() && j < strs[i].length() && prefix.charAt(j) == strs[i].charAt(j)) {
                    j++;
                }
                // 更新prefix为公共前缀部分
                prefix = prefix.substring(0, j);

                // 如果没有公共前缀，直接返回空字符串
                if (prefix.isEmpty()) {
                    return "";
                }
            }

            return prefix;
        }

        public static void main(String[] args) {
            Solution1a solution = new Solution1a();

            // 示例1
            String[] strs1 = {"flower", "flow", "flight"};
            System.out.println(solution.longestCommonPrefix(strs1)); // 输出："fl"

            // 示例2
            String[] strs2 = {"dog", "racecar", "car"};
            System.out.println(solution.longestCommonPrefix(strs2)); // 输出：""
        }
    }


